﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using smartphone.App_Code;
using System.Text;

namespace smartphone.UserControls
{
    public partial class AdminManuList : System.Web.UI.UserControl
    {
        private Manufacturer manu = new Manufacturer();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindGrid();
            }
        }


        private void BindGrid()
        {
            GridViewManu.DataSource = manu.getManufacturer();
            GridViewManu.DataBind();
        }

        protected void GridViewManu_RowEditing(object sender, GridViewEditEventArgs e)
        {
            //set row duoc bat che do edit
            GridViewManu.EditIndex = e.NewEditIndex;

            //set status ten label
            //LabelInform.Text = "Sửa dòng số " + e.NewEditIndex.ToString();
            BindGrid();
        }

        protected void GridViewManu_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            //huy bo dong dang eidt
            GridViewManu.EditIndex = -1;

            LabelInform.Text = "Hủy sửa.";

            BindGrid();
        }

        protected void GridViewManu_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            //lay id cua hang dang duoc sua
            string id = GridViewManu.DataKeys[e.RowIndex].Value.ToString();
            string name = ((TextBox)GridViewManu.Rows[e.RowIndex].Cells[0].Controls[0]).Text;

            if (name != "")
            {
                bool success = manu.UpdateManufacturer(Int32.Parse(id), name);
                GridViewManu.EditIndex = -1;
                //LabelInform.Text = success ? "Cập nhật thành công." : "Cập nhật thất bại.";
            }

            else
            {
                LabelInform.Text = "Tên hãng không được để trống.";
            }
          
            BindGrid();
        }

        protected void GridViewManu_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            //lay id cua hang dang duoc sua
            string id = GridViewManu.DataKeys[e.RowIndex].Value.ToString();
            try
            {
                bool success = manu.DeleteManufacturer(Int32.Parse(id));
                GridViewManu.EditIndex = -1;
            }
            catch
            {
                ShowPopUpMsg("Hãng sản xuất này đã được có sản tham chiếu tới, không thể xóa!");
            }
            
            //LabelInform.Text = success ? "Xóa thành công." : "Xóa thất bại.";
            BindGrid();
        }

        protected void BtCreateManufacturer_Click(object sender, EventArgs e)
        {
            bool success = manu.CreateManufacturer(TxtManuName.Text);
            //LabelInform2.Text = success ? "Thêm hãng thành công" : "Thêm hãng thất bại";
            BindGrid();
        }

        /// <summary>
        /// Hien thi messagebox thong bao loi
        /// </summary>
        /// <param name="msg">Nội dung thông báo được đưa ra</param>
        private void ShowPopUpMsg(string msg)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("alert('");
            sb.Append(msg.Replace("\n", "\\n").Replace("\r", "").Replace("'", "\\'"));
            sb.Append("');");
            ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "showalert", sb.ToString(), true);
        }
    }
}